package com.date.demo03;

import java.time.Instant;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Test02 {
    public static void main(String[] args) {
        System.out.println("DateTimeFormatter 时间格式化操作");
        /**
         * SimpleDateFormat 线程不安全 每次都是创建新的局部变量
         * DateTimeFormatter 线程安全 每次只创建一个实例，到处引用，还可以指定地方时间
         * Date 类 使用 SimpleDateFormat
         * LocalDateTime 和 ZonedDateTime
         */

        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

        ZonedDateTime zdt = ZonedDateTime.now();
        System.out.println(dateTimeFormatter.format(zdt)); // 2021-12-24 15:05:57

        // 指定中国格式
        DateTimeFormatter zhFormatter = DateTimeFormatter.ofPattern("yyyy MMM dd EE HH:mm", Locale.CHINA);
        System.out.println(zhFormatter.format(zdt)); // 2021 十二月 24 星期五 15:07

        // 指定美国格式
        DateTimeFormatter usFormatter = DateTimeFormatter.ofPattern("E，MMMM/dd/yyyy HH:mm", Locale.US);
        System.out.println(usFormatter.format(zdt)); // Fri，December/24/2021 15:07

        // 系统的毫秒
        System.out.println("==========");
        System.out.println(System.currentTimeMillis());

        // java.time.Instant 类
        // 获取时间戳 秒
        Instant instant = Instant.now();
        System.out.println(instant.getEpochSecond()); // 秒
        System.out.println(instant.toEpochMilli()); // 毫秒
    }
}
